﻿//using System;

//namespace Core.Frame
//{
//    public enum EFrameType
//    {
//        Logic,  //逻辑帧
//        Anim,   //动画帧
//        Render  //渲染帧
//    }

//    public class FrameManager : Component, IAwake, IUpdate
//    {
//        public Action<int, float> frameUpdate;
//        public Action<int> animFrameUpdate;
//        public Action<int> logicFrameUpdate;

//        public FrameItem render { get; private set; }
//        public FrameItem anim { get; private set; }
//        public FrameItem logic { get; private set; }

//        public void Awake()
//        {
//            render = G.factory.Create<FrameItem, EFrameType, int>(EFrameType.Logic, 10);
//            anim = G.factory.Create<FrameItem, EFrameType, int>(EFrameType.Anim, 30);
//            logic = G.factory.Create<FrameItem, EFrameType, int>(EFrameType.Render, 60);
//        }

//        public override void Dispose()
//        {
//            if (IsDisposed) return;
//            base.Dispose();

//            render.Dispose();
//            render = null;
//            anim.Dispose();
//            anim = null;
//            logic.Dispose();
//            logic = null;
//        }

//        public void Update()
//        {
//            render.Update();
//            anim.Update();
//            logic.Update();
//        }
//    }
//}